package kr.hkit.powerjava.chapter24.work;

import java.io.EOFException;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;

public class TestMain {

	public static void main(String[] args) {

		ArrayList<Student> arList = new ArrayList<>();

		Student std = new Student(1, "김태희", 90, 80, 70);
		// System.out.println(std);

		Student std2 = new Student(2, "박신혜", 100, 100, 100);
		// System.out.println(std2);

		arList.add(std);
		arList.add(std2);

		ObjectOutputStream oos = null;
		ObjectInputStream ois = null;

		try {
			oos = new ObjectOutputStream(new FileOutputStream(
					"StudentList.dat"));
			oos.writeObject(arList);
			/*
			 * oos.writeObject(std); oos.writeObject(std2);
			 */
			
			/*for(Student temp : arList){
				oos.writeObject(temp);
			}*/
			oos.flush();

			ois = new ObjectInputStream(new FileInputStream("StudentList.dat"));

			ArrayList<Student> list;
			
			list = (ArrayList<Student>) ois.readObject();
			/*while (ois.available() != -1) {
				try {
					Student std3 = (Student) ois.readObject();
					System.out.println(std3);
					
					list.add((Student) ois.readObject());
				} catch (EOFException e) {
					break;
				}
			}
			*/
			for(Student st : list){
				System.out.println(st);
			}

		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} finally {
			if (oos != null) {
				try {	oos.close();} catch (IOException e) {}
			}
			if (ois != null) {
				try {	ois.close();} catch (IOException e) {}
			}
		}
	}
}
